package com.dragon.modules.yuegou.entity.system;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.OwnerType;
import com.dragon.modules.yuegou.enums.YsqAppType;
import com.dragon.modules.yuegou.enums.system.MenuExpandStatus;
import com.dragon.modules.yuegou.enums.system.MenuMark;
import com.dragon.modules.yuegou.enums.system.MenuStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;

/**
 * 菜单表实体类<br>
 * 对应的表为：sys_menu<br>
 * 
 * @author pbuilder generated
 * @date 2019-08-21 17:34:57
 * @company sgy
 * @version 2.0
 */
@TableName("sys_menu")
@ApiModel(description = "菜单表")
public class MenuEntity {
	@ApiModelProperty("编号")
	protected String id;

    /** 菜单名称 */
	@ApiModelProperty("菜单名称")
	protected String name;

    /** 上级菜单编号 */
	@ApiModelProperty("上级菜单编号")
	protected String parentId;

    /** [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT */
	@ApiModelProperty("[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT")
	protected OwnerType ownerType;

    /** 节点图标CSS类名 */
	@ApiModelProperty("节点图标CSS类名")
	protected String iconCls;

    /** 排序号 */
	@ApiModelProperty("排序号")
	protected Integer sortNo;

    /** 请求地址 */
	@ApiModelProperty("请求地址")
	protected String requestAddress;

    /** 权限标识(菜单名的英文) */
	@ApiModelProperty("权限标识(菜单名的英文)")
	protected String permission;

    /** [枚举]展开状态：0-收缩-SHRINKAGE、1-展开-UNFOLD */
	@ApiModelProperty("[枚举]展开状态：0-收缩-SHRINKAGE、1-展开-UNFOLD")
	protected MenuExpandStatus expandStatus;

    /** 备注 */
	@ApiModelProperty("备注")
	protected String remark;

    /** [枚举]状态：1-已启用-ENABLED、2-禁用-DISABLED */
	@ApiModelProperty("[枚举]状态：1-已启用-ENABLED、2-禁用-DISABLED")
	protected MenuStatus status;

    /** [枚举]标志(APP和小程序只有按钮和营销两种类型)：0-顶部节点-TOP、1-父节点-PARENTNODE、2-叶节点-LEAFNODE、3-按钮-BUTTON、4-营销-MARKING */
	@ApiModelProperty("[枚举]标志(APP和小程序只有按钮和营销两种类型)：0-顶部节点-TOP、1-父节点-PARENTNODE、2-叶节点-LEAFNODE、3-按钮-BUTTON、4-营销-MARKING")
	protected MenuMark mark;

    /** 顶部菜单id  用于一次查询所有顶部id下包含的菜单 */
	@ApiModelProperty("顶部菜单id  用于一次查询所有顶部id下包含的菜单")
	protected String topMenuId;

    /**  */
	protected LocalDateTime createdTime;

    /**  */
	protected String createdBy;

    /**  */
	protected LocalDateTime modifiedTime;

    /**  */
	protected String modifiedBy;

    /** 逻辑删除，1表示已删除,0表示未删除 */
	@ApiModelProperty("逻辑删除，1表示已删除,0表示未删除")
	protected Boolean del;

    /**  */
	protected String delBy;

    /**  */
	protected LocalDateTime delTime;

    /** [全局枚举]应用：0-大运营后台-YSQ_PLATFORM、1-集团版后台-YSQ_GROUP、2-悦商圈APP安卓版-YSQ_APP_ANDROID、3-悦商圈APPIOS版-YSQ_APP_IOS、4-悦商惠小程序-YSQ_MERCHANT_XCX、5-悦购小程序-YSQ_XCX、6-悦荷包小程序-YSQ_WALLET_XCX、7-悦商管小程序-YSQ_GROUP_XCX、8-悦商圈员工版小程序-YSQ_GROUP_EMPLOYEE_XCX、9-商户版后台-YSQ_MERCHANT */
	@ApiModelProperty("[全局枚举]应用：0-大运营后台-YSQ_PLATFORM、1-集团版后台-YSQ_GROUP、2-悦商圈APP安卓版-YSQ_APP_ANDROID、3-悦商圈APPIOS版-YSQ_APP_IOS、4-悦商惠小程序-YSQ_MERCHANT_XCX、5-悦购小程序-YSQ_XCX、6-悦荷包小程序-YSQ_WALLET_XCX、7-悦商管小程序-YSQ_GROUP_XCX、8-悦商圈员工版小程序-YSQ_GROUP_EMPLOYEE_XCX、9-商户版后台-YSQ_MERCHANT")
	protected YsqAppType application;

    /** 绑定在菜单上的系统内置角色 */
	@ApiModelProperty("绑定在菜单上的系统内置角色")
	protected String roles;

	/**
	 * 构造一个空菜单表实体对象
	 */
	public MenuEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个菜单表实体对象
	 * 
	 * @param other 其它对象
	 */
	public MenuEntity(MenuEntity other){
		super();
     	this.id = other.id;
     	this.name = other.name;
     	this.parentId = other.parentId;
     	this.ownerType = other.ownerType;
     	this.iconCls = other.iconCls;
     	this.sortNo = other.sortNo;
     	this.requestAddress = other.requestAddress;
     	this.permission = other.permission;
     	this.expandStatus = other.expandStatus;
     	this.remark = other.remark;
     	this.status = other.status;
     	this.mark = other.mark;
     	this.topMenuId = other.topMenuId;
     	this.createdTime = other.createdTime;
     	this.createdBy = other.createdBy;
     	this.modifiedTime = other.modifiedTime;
     	this.modifiedBy = other.modifiedBy;
     	this.del = other.del;
     	this.delBy = other.delBy;
     	this.delTime = other.delTime;
     	this.application = other.application;
     	this.roles = other.roles;
	}


	/**
	 * 获取编号
	 * 
	 * @return id 编号
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置编号
	 * 
	 * @param id 编号
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取菜单名称
	 * 
	 * @return name 菜单名称
	 */
	public String getName() {
		return name;
	}
  	
	/**
	 * 设置菜单名称
	 * 
	 * @param name 菜单名称
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取上级菜单编号
	 * 
	 * @return parentId 上级菜单编号
	 */
	public String getParentId() {
		return parentId;
	}
  	
	/**
	 * 设置上级菜单编号
	 * 
	 * @param parentId 上级菜单编号
	 */
	public void setParentId(String parentId) {
		this.parentId = parentId;
	}

	/**
	 * 获取[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 * 
	 * @return ownerType [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 */
	public OwnerType getOwnerType() {
		return ownerType;
	}
  	
	/**
	 * 设置[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 * 
	 * @param ownerType [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 */
	public void setOwnerType(OwnerType ownerType) {
		this.ownerType = ownerType;
	}

	/**
	 * 获取节点图标CSS类名
	 * 
	 * @return iconCls 节点图标CSS类名
	 */
	public String getIconCls() {
		return iconCls;
	}
  	
	/**
	 * 设置节点图标CSS类名
	 * 
	 * @param iconCls 节点图标CSS类名
	 */
	public void setIconCls(String iconCls) {
		this.iconCls = iconCls;
	}

	/**
	 * 获取排序号
	 * 
	 * @return sortNo 排序号
	 */
	public Integer getSortNo() {
		return sortNo;
	}
  	
	/**
	 * 设置排序号
	 * 
	 * @param sortNo 排序号
	 */
	public void setSortNo(Integer sortNo) {
		this.sortNo = sortNo;
	}

	/**
	 * 获取请求地址
	 * 
	 * @return requestAddress 请求地址
	 */
	public String getRequestAddress() {
		return requestAddress;
	}
  	
	/**
	 * 设置请求地址
	 * 
	 * @param requestAddress 请求地址
	 */
	public void setRequestAddress(String requestAddress) {
		this.requestAddress = requestAddress;
	}

	/**
	 * 获取权限标识(菜单名的英文)
	 * 
	 * @return permission 权限标识(菜单名的英文)
	 */
	public String getPermission() {
		return permission;
	}
  	
	/**
	 * 设置权限标识(菜单名的英文)
	 * 
	 * @param permission 权限标识(菜单名的英文)
	 */
	public void setPermission(String permission) {
		this.permission = permission;
	}

	/**
	 * 获取[枚举]展开状态：0-收缩-SHRINKAGE、1-展开-UNFOLD
	 * 
	 * @return expandStatus [枚举]展开状态：0-收缩-SHRINKAGE、1-展开-UNFOLD
	 */
	public MenuExpandStatus getExpandStatus() {
		return expandStatus;
	}
  	
	/**
	 * 设置[枚举]展开状态：0-收缩-SHRINKAGE、1-展开-UNFOLD
	 * 
	 * @param expandStatus [枚举]展开状态：0-收缩-SHRINKAGE、1-展开-UNFOLD
	 */
	public void setExpandStatus(MenuExpandStatus expandStatus) {
		this.expandStatus = expandStatus;
	}

	/**
	 * 获取备注
	 * 
	 * @return remark 备注
	 */
	public String getRemark() {
		return remark;
	}
  	
	/**
	 * 设置备注
	 * 
	 * @param remark 备注
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * 获取[枚举]状态：1-已启用-ENABLED、2-禁用-DISABLED
	 * 
	 * @return status [枚举]状态：1-已启用-ENABLED、2-禁用-DISABLED
	 */
	public MenuStatus getStatus() {
		return status;
	}
  	
	/**
	 * 设置[枚举]状态：1-已启用-ENABLED、2-禁用-DISABLED
	 * 
	 * @param status [枚举]状态：1-已启用-ENABLED、2-禁用-DISABLED
	 */
	public void setStatus(MenuStatus status) {
		this.status = status;
	}

	/**
	 * 获取[枚举]标志(APP和小程序只有按钮和营销两种类型)：0-顶部节点-TOP、1-父节点-PARENTNODE、2-叶节点-LEAFNODE、3-按钮-BUTTON、4-营销-MARKING
	 * 
	 * @return mark [枚举]标志(APP和小程序只有按钮和营销两种类型)：0-顶部节点-TOP、1-父节点-PARENTNODE、2-叶节点-LEAFNODE、3-按钮-BUTTON、4-营销-MARKING
	 */
	public MenuMark getMark() {
		return mark;
	}
  	
	/**
	 * 设置[枚举]标志(APP和小程序只有按钮和营销两种类型)：0-顶部节点-TOP、1-父节点-PARENTNODE、2-叶节点-LEAFNODE、3-按钮-BUTTON、4-营销-MARKING
	 * 
	 * @param mark [枚举]标志(APP和小程序只有按钮和营销两种类型)：0-顶部节点-TOP、1-父节点-PARENTNODE、2-叶节点-LEAFNODE、3-按钮-BUTTON、4-营销-MARKING
	 */
	public void setMark(MenuMark mark) {
		this.mark = mark;
	}

	/**
	 * 获取顶部菜单id  用于一次查询所有顶部id下包含的菜单
	 * 
	 * @return topMenuId 顶部菜单id  用于一次查询所有顶部id下包含的菜单
	 */
	public String getTopMenuId() {
		return topMenuId;
	}
  	
	/**
	 * 设置顶部菜单id  用于一次查询所有顶部id下包含的菜单
	 * 
	 * @param topMenuId 顶部菜单id  用于一次查询所有顶部id下包含的菜单
	 */
	public void setTopMenuId(String topMenuId) {
		this.topMenuId = topMenuId;
	}

	/**
	 * 获取
	 * 
	 * @return createdTime 
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param createdTime 
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取
	 * 
	 * @return createdBy 
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param createdBy 
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取
	 * 
	 * @return modifiedTime 
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param modifiedTime 
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取
	 * 
	 * @return modifiedBy 
	 */
	public String getModifiedBy() {
		return modifiedBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param modifiedBy 
	 */
	public void setModifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
	}

	/**
	 * 获取逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @return del 逻辑删除，1表示已删除,0表示未删除
	 */
	public Boolean getDel() {
		return del;
	}
  	
	/**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del 逻辑删除，1表示已删除,0表示未删除
	 */
	public void setDel(Boolean del) {
		this.del = del;
	}

	/**
	 * 获取
	 * 
	 * @return delBy 
	 */
	public String getDelBy() {
		return delBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param delBy 
	 */
	public void setDelBy(String delBy) {
		this.delBy = delBy;
	}

	/**
	 * 获取
	 * 
	 * @return delTime 
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param delTime 
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

	/**
	 * 获取[全局枚举]应用：0-大运营后台-YSQ_PLATFORM、1-集团版后台-YSQ_GROUP、2-悦商圈APP安卓版-YSQ_APP_ANDROID、3-悦商圈APPIOS版-YSQ_APP_IOS、4-悦商惠小程序-YSQ_MERCHANT_XCX、5-悦购小程序-YSQ_XCX、6-悦荷包小程序-YSQ_WALLET_XCX、7-悦商管小程序-YSQ_GROUP_XCX、7-悦商圈员工版小程序-YSQ_GROUP_EMPLOYEE_XCX
	 * 
	 * @return application [全局枚举]应用：0-大运营后台-YSQ_PLATFORM、1-集团版后台-YSQ_GROUP、2-悦商圈APP安卓版-YSQ_APP_ANDROID、3-悦商圈APPIOS版-YSQ_APP_IOS、4-悦商惠小程序-YSQ_MERCHANT_XCX、5-悦购小程序-YSQ_XCX、6-悦荷包小程序-YSQ_WALLET_XCX、7-悦商管小程序-YSQ_GROUP_XCX、7-悦商圈员工版小程序-YSQ_GROUP_EMPLOYEE_XCX
	 */
	public YsqAppType getApplication() {
		return application;
	}
  	
	/**
	 * 设置[全局枚举]应用：0-大运营后台-YSQ_PLATFORM、1-集团版后台-YSQ_GROUP、2-悦商圈APP安卓版-YSQ_APP_ANDROID、3-悦商圈APPIOS版-YSQ_APP_IOS、4-悦商惠小程序-YSQ_MERCHANT_XCX、5-悦购小程序-YSQ_XCX、6-悦荷包小程序-YSQ_WALLET_XCX、7-悦商管小程序-YSQ_GROUP_XCX、7-悦商圈员工版小程序-YSQ_GROUP_EMPLOYEE_XCX
	 * 
	 * @param application [全局枚举]应用：0-大运营后台-YSQ_PLATFORM、1-集团版后台-YSQ_GROUP、2-悦商圈APP安卓版-YSQ_APP_ANDROID、3-悦商圈APPIOS版-YSQ_APP_IOS、4-悦商惠小程序-YSQ_MERCHANT_XCX、5-悦购小程序-YSQ_XCX、6-悦荷包小程序-YSQ_WALLET_XCX、7-悦商管小程序-YSQ_GROUP_XCX、7-悦商圈员工版小程序-YSQ_GROUP_EMPLOYEE_XCX
	 */
	public void setApplication(YsqAppType application) {
		this.application = application;
	}

	/**
	 * 获取绑定在菜单上的系统内置角色
	 * 
	 * @return roles 绑定在菜单上的系统内置角色
	 */
	public String getRoles() {
		return roles;
	}
  	
	/**
	 * 设置绑定在菜单上的系统内置角色
	 * 
	 * @param roles 绑定在菜单上的系统内置角色
	 */
	public void setRoles(String roles) {
		this.roles = roles;
	}

    public String toString() {
		return new StringBuilder().append("MenuEntity{").
			append("id=").append(id).
			append(",name=").append(name).
			append(",parentId=").append(parentId).
			append(",ownerType=").append(ownerType).
			append(",iconCls=").append(iconCls).
			append(",sortNo=").append(sortNo).
			append(",requestAddress=").append(requestAddress).
			append(",permission=").append(permission).
			append(",expandStatus=").append(expandStatus).
			append(",remark=").append(remark).
			append(",status=").append(status).
			append(",mark=").append(mark).
			append(",topMenuId=").append(topMenuId).
			append(",createdTime=").append(createdTime).
			append(",createdBy=").append(createdBy).
			append(",modifiedTime=").append(modifiedTime).
			append(",modifiedBy=").append(modifiedBy).
			append(",del=").append(del).
			append(",delBy=").append(delBy).
			append(",delTime=").append(delTime).
			append(",application=").append(application).
			append(",roles=").append(roles).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public MenuEntity copy() {
		return new MenuEntity(this);
	}

    /** 编号 */
	public static final String COL_ID = "id";

    /** 菜单名称 */
	public static final String COL_NAME = "name";

    /** 上级菜单编号 */
	public static final String COL_PARENT_ID = "parent_id";

    /** [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT */
	public static final String COL_OWNER_TYPE = "owner_type";

    /** 节点图标CSS类名 */
	public static final String COL_ICON_CLS = "icon_cls";

    /** 排序号 */
	public static final String COL_SORT_NO = "sort_no";

    /** 请求地址 */
	public static final String COL_REQUEST_ADDRESS = "request_address";

    /** 权限标识(菜单名的英文) */
	public static final String COL_PERMISSION = "permission";

    /** [枚举]展开状态：0-收缩-SHRINKAGE、1-展开-UNFOLD */
	public static final String COL_EXPAND_STATUS = "expand_status";

    /** 备注 */
	public static final String COL_REMARK = "remark";

    /** [枚举]状态：1-已启用-ENABLED、2-禁用-DISABLED */
	public static final String COL_STATUS = "status";

    /** [枚举]标志(APP和小程序只有按钮和营销两种类型)：0-顶部节点-TOP、1-父节点-PARENTNODE、2-叶节点-LEAFNODE、3-按钮-BUTTON、4-营销-MARKING */
	public static final String COL_MARK = "mark";

    /** 顶部菜单id  用于一次查询所有顶部id下包含的菜单 */
	public static final String COL_TOP_MENU_ID = "top_menu_id";

    /**  */
	public static final String COL_CREATED_TIME = "created_time";

    /**  */
	public static final String COL_CREATED_BY = "created_by";

    /**  */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /**  */
	public static final String COL_MODIFIED_BY = "modified_by";

    /** 逻辑删除，1表示已删除,0表示未删除 */
	public static final String COL_DEL = "del";

    /**  */
	public static final String COL_DEL_BY = "del_by";

    /**  */
	public static final String COL_DEL_TIME = "del_time";

    /** [全局枚举]应用：0-大运营后台-YSQ_PLATFORM、1-集团版后台-YSQ_GROUP、2-悦商圈APP安卓版-YSQ_APP_ANDROID、3-悦商圈APPIOS版-YSQ_APP_IOS、4-悦商惠小程序-YSQ_MERCHANT_XCX、5-悦购小程序-YSQ_XCX、6-悦荷包小程序-YSQ_WALLET_XCX、7-悦商管小程序-YSQ_GROUP_XCX、7-悦商圈员工版小程序-YSQ_GROUP_EMPLOYEE_XCX */
	public static final String COL_APPLICATION = "application";

    /** 绑定在菜单上的系统内置角色 */
	public static final String COL_ROLES = "roles";
}
